<!--
 * @Author: YSM
 * @Description: 
 * @Date: 2022-08-29 17:36:19
 * @LastEditTime: 2022-08-29 17:39:01
 * @FilePath: \my_vue_demof:\杂物箱\技术\my_web_knowledge\html\圣杯布局.html
-->
<!-- 圣杯布局，利用浮动和负边距来实现。
    父级元素设置左右的 padding，
    三列均设置向左浮动，
    中间一列放在最前面，
    宽度设置为父级元素的宽度，
    因此后面两列都被挤到了下一行，
    通过设置 margin 负值将其移动到上一行，
    再利用相对定位，定位到两边。 -->
<html>
<head>
    <title>圣杯布局</title>
    <style type="text/css">
        body {
            min-width: 550px;
        }
        #header {
            text-align: center;
            background-color: #f1f1f1;
        }

        #container {
            padding-left: 200px;
            padding-right: 150px;
        }
        #container .column {
            float: left;
        }

        #center {
            background-color: #ccc;
            width: 100%;
        }
        #left {
            position: relative;
            background-color: yellow;
            width: 200px;
            margin-left: -100%;
            right: 200px;
        }
        #right {
            background-color: red;
            width: 150px;
            margin-right: -150px;
        }

        #footer {
            text-align: center;
            background-color: #f1f1f1;
        }

        /* 手写 clearfix */
        .clearfix:after {
            content: '';
            display: table;
            clear: both;
        }
    </style>
</head>
<body>
    <div id="header">this is header</div>
    <div id="container" class="clearfix">
        <!-- 先加载中间 -->
        <div id="center" class="column">this is center</div>
        <div id="left" class="column">this is left</div>
        <div id="right" class="column">this is right</div>
    </div>
    <div id="footer">this is footer</div>
</body>
</html>